__author__ = 'fanzhiwei'
# 一个元组由数个逗号分隔的值组成
t = 12345, 54321, 'hello!'
# 嵌套元组 Tuples may be nested:
u = t, (1, 2, 3, 4, 5)  # ((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))

# Tuples are immutable: 元组不可变，以下语句将报错，
# 不可变，这也是与java数组的不同之处
# t[0] = 88888

# 元组在输出时总是有括号的，以便于正确表达嵌套结构。在输入时可以有或没有括号
v = ([1, 2, 3], [3, 2, 1])

# 一个单元素元组可以在值后面跟一个逗号
singleton = 'hello',    # <-- note trailing comma
len(singleton) # 长度为1

# 语句 t = 12345, 54321, 'hello!' 是 元组封装 （tuple packing）的一个例子：值 12345 ， 54321 和 'hello!' 被封装进元组。其逆操作可能是这样
x, y, z = t # 序列拆封 非常恰当。序列拆封要求左侧的变量数目与序列的元素个数相同